/**
 * 
 */
package org.youisoft.summer.evaluator.function;

import org.youisoft.summer.evaluator.InvokeException;
import org.youisoft.summer.evaluator.context.CalContext;
import org.youisoft.summer.evaluator.operator.Operator;

/**
 * @author zijiang.jl
 *
 */
public interface FunctionCallback {

	public <C, R, P> Operator<?> doBraceInvoke(CalContext<C, R, P> context,
			Operator<?>... operator) throws InvokeException;
	
	
	public <C, R, P> Operator<?> doBracketInvoke(CalContext<C, R, P> context,
			Operator<?>... operator) throws InvokeException;
	
	
	public <C, R, P> Operator<?> doParenthesisInvoke(CalContext<C, R, P> context,
			Operator<?>... operator) throws InvokeException;
}
